A computer system often runs a number of different tasks during a particular period of time. The tasks can be associated with a variety of applications. The tasks operate using a variety of computer system resources. An operating system controls and provides access to many of the computer system resources, such as the memory system. The tasks can make requests for the computer system resources to the operating system.
The tasks can perform various functions, some of which may need to be performed in real time. Functions that are performed in real time are usually associated with certain service requirements to meet real time deadlines. The service requirements are usually measured in the frequency of requests and/or response time. Thus, the real time task needs a certain minimum number of resources including execution resources to operate in real time. Other tasks may not operate in real time. Therefore, requests by these tasks can be serviced whenever the resources are available.
In practice, there are real time tasks that are measured for real time performance with an average response time over a longer time period. Additionally, the tasks may make more frequent requests during shorter periods of time.
In practice, real time tasks require a variable amount of time to process a request or event and most real time systems must budget resources, particularly execution, resources for the worst case processing time. This situation typically results in inefficient underutilized systems.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.